import numpy as np
import matplotlib.pyplot as plt

# data = np.arange(100, 201)
# plt.plot(data)
# plt.show()

# 创建新的画布, 返回figure实例
# figure_obj = plt.figure()

# data2 = np.arange(200, 301)
# # # 背景变为灰色
# plt.figure(facecolor='gray')
# plt.plot(data2)
# plt.show()

# nums = np.arange(0, 101)
# # 分成2*2的矩阵区域，占用编号为1的区域，即第一行第一列的子图
# plt.subplot(221)
# # 在选中的子图上作图
# plt.plot(nums, nums)
# # 分成2*2的矩阵区域，占用编号为2的区域，即第一行第二列
# plt.subplot(222)
# plt.plot(nums, -nums)
# # 分成2*1的矩阵区域，占用编号为2的区域，即第2行的子图
# plt.subplot(212)
# plt.plot(nums, nums**2)
# plt.show()

# nums = np.arange(1, 101)
# # 分成2*2的矩阵区域，返回子图数组axes
# fig, axes = plt.subplots(2, 2)
# ax1 = axes[0, 0]
# ax2 = axes[0, 1]
# ax3 = axes[1, 0]
# ax4 = axes[1, 1]
# # 在选中的子图上作图
# ax1.plot(nums, nums)
# ax2.plot(nums, -nums)
# ax3.plot(nums, nums**2)
# ax4.plot(nums, np.log(nums))
# plt.show()

# # 创建Figure的实例
# fig = plt.figure()
# # 添加子图
# fig.add_subplot(2, 2, 1)
# fig.add_subplot(2, 2, 2)
# fig.add_subplot(2, 2, 4)
# fig.add_subplot(2, 2, 3)
# # 在子图上作图
# random_arr = np.random.rand(100)
# # 默认是在最后一次使用subplot的位置上作图，即编号为3的位置
# plt.plot(random_arr)
# plt.show()

# data = np.arange(0, 1.1, 0.01)
# # 添加标题
# plt.title("Title")
# # 添加x轴的名称
# plt.xlabel("x")
# # 添加y轴名称
# plt.ylabel("y")
# # 设置x轴和y轴的刻度
# plt.xticks([0, 0.5, 1])
# plt.yticks([0, 0.5, 1.0])
# plt.plot(data, data**2)
# plt.plot(data, data**3)
# plt.legend(["y=x^2", "y=x^3"])
# plt.show()

# # 产生-3到3之间的50点
# x = np.linspace(-3, 3, 50)
# # 构造函数
# y1 = 2*x+1
# y2 = x**2
# # 确保编号为 3 的图形被创建或激活，并设置其尺寸为 8×5 英寸
# plt.figure(num=3, figsize=(8, 5))
# plt.plot(x, y2)
# # 红色虚线直线宽度默认1.0
# plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# # 设置x轴范围
# plt.xlim((-1, 2))
# # 设置y轴范围
# plt.ylim((-2, 3))
# # 设置坐标轴含义，注：英文直接写，中文需要后边加上fontproperties属性
# # u代表unicode编码
# # SimHei 黑体
# # fontsize=16 设置标签文本的字体大小为 16 磅
# plt.xlabel(u'价格', fontproperties='SimHei', fontsize=16)
# plt.ylabel(u'利润', fontproperties='SimHei', fontsize=16)
# # 设置x轴刻度
# # -1到2区间，5个点，4个区间，平均分：[-1., -0.25, 0.5, 1.25, 2.]
# new_ticks = np.linspace(-1, 2, 5)
# print(new_ticks)
# plt.xticks(new_ticks)
#
# # 设置y轴刻度
# '''
# 设置对应坐标用汉字或英文表示，后边的属性fontproperties表示中文可见，不乱吗，
# 内部英文$$表示将英文括起来，r表示正则匹配，通过这个方式将其变为好看的字体
# 如果要显示特殊字符，比如阿尔法，则用转义符\alpha，前面的\ 表示转义
# '''
# plt.yticks([-2, -1.8, -1, 1.22, 3.],
#            ['非常糟糕', '糟糕', r'$good\ \alpha$', r'$really\ good$', '超级好'],
#            fontproperties='SimHei',
#            fontsize=12)
# plt.show()

# # 创建随机数组
# # 生成一个包含 100个服从标准正态分布（均值为 0，标准差为 1）的随机数的一维数组
# arr = np.random.randn(100)
# # 绘制直方图
# # 将数据划分为8个区块，直方图颜色是蓝色，透明度为0.7
# plt.hist(arr, bins=8, color='b', alpha=0.7)
# plt.show()

# # 创建包含整数0~51的数组，用于表示x的数据
# x = np.arange(51)
# # 创建另一数组，用于表示y轴的数据
# y = np.random.rand(51)*10
# # 绘制数据散点图
# plt.scatter(x, y)
# plt.show()

# # 创建包含0~4的一维数组
# x = np.arange(5)
# # 从上下限范围内随机选取整数，创建两个2行5列的数组
# y1, y2 = np.random.randint(1, 31, size=(2, 5))
# # 条形宽度
# width = 0.25
# # 创建一个子图
# ax = plt.subplot(1, 1, 1)
# # 绘制红色的柱形图
# ax.bar(x, y1, width, color='r')
# # 绘制另一个绿色的柱形图
# ax.bar(x+width, y2, width, color='g')
# # 设置x轴的刻度
# ax.set_xticks(x+width)
# # 设置x轴的刻度标签
# ax.set_xticklabels(['January', 'February', 'March', 'April', 'May'])
# plt.show()

# data = np.arange(1, 3, 0.3)
# # 绘制直线,颜色为青色，标记为"x", 线型为长虚线
# plt.plot(data, color='c', marker="x", linestyle="--")
# # 绘制直线，颜色为品红，标记为实心圆圈，线型为短虚线
# plt.plot(data+1, color='m', marker="o", linestyle=":")
# # 绘制直线，颜色为黑色，标记为五边形，线性为短点相间线
# plt.plot(data+2, color='k', marker='p', linestyle="-.")
# # 或者简写为下面这种
# # plt.plot(data, 'cx--', data+1, 'mo:', data+2, 'kp-.')
# plt.show()

r = np.random.randn(100)
plt.plot(r)
plt.show()
